<%@ page import="net.jdiy.core.*" %>
<%@ page import="java.util.Date" %>
<%@ page import="net.jdiy.util.Sec" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%
    App app = App.get();
    Dao dao = app.getDao();
    Rs vip = JDiyAction.getRs("vip", "vip");//获取从页面POST过来的数据（封包成的Rs对象，注意它是瞬时状态的，数据库中并没有这条记录）
    Rs persist = dao.rs(new Args("vip", "username='" + vip.get("username") + "'"));//从数据库中查会员用户名，用于判断重复.
    if (!persist.isNull()) {
        //这儿输出了一个json String,实际应用中会采用相关的JSON工具类来生成json.
        out.print("{result:'对不起，用户名已经被他人使用，请换个用户名后再试。'}");
        return;
    }

    Rs viptype = dao.rs(new Args("viptype", "order by sort"));//获取第一个会员级别（用于设置注册的用户的默认会员级别）

    vip.set("viptype", viptype.get("id")) //设置刚注册的会员的默认会员级别(对应于后台的会员级别的id)。
            .set("registerdate", new Date())//设置会员的注册日期。
            .set("password", Sec.MD5Encrypt(vip.get("password"), 32));//密码要加密成32位md5大写形式后保存
    //注意上面这三行其实是一条语句哦。Rs类的set方法返回类型是当前的Rs对象本身，因此多个set方法可以连着写。

    dao.save(vip);//将用户注册信息保存到数据库

    //注册后直接让用户处于己登录的状态（即设置刚注册的用户的登录会话状态，省得用户注册后还要再登录一次）
    app.var("vipId", vip.get("id"));
    app.var("vipName", vip.get("username"));
    app.var("vipTypeName", viptype.get("name"));

    out.print("{result:'success'}");//示例代码的会员注册是用的ajax/json返回的方式，所以这里直接输出了。
%>